﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace ColorShow
{
    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    public partial class MainWindow : Window
    {
        List<Brush> list1 = new List<Brush>(50);
        List<string> list2 = new List<string>(50);
        public MainWindow()
        {
            InitializeComponent();
            Ini();
        }

        private void Ini()
        {
            this.Title = "WPF_Brushes";
            this.AddBrush();
            this.AddName();
            this.Sort();
            WrapPanel wrap = new WrapPanel();
            //wrap.Orientation = Orientation.Horizontal;
            for(int i = 0; i < list1.Count; i++)
            {
                wrap.Children.Add(this.GetTextBox(list2[i], list1[i]));
            }

            this.Content = wrap;
        }

        TextBox GetTextBox(string name, Brush brush)
        {
            TextBox box = new TextBox();
            box.Width = 110;
            box.Height = 100;
            box.Margin = new Thickness(5);
            box.Background = brush;
            box.Text = name + "\r\n" + brush.ToString();
            box.FontSize = 12;
            box.TextAlignment = TextAlignment.Center;
            box.VerticalContentAlignment = VerticalAlignment.Bottom;
            return box;
        }

        void Sort()
        {
            for(int i = 0; i < list1.Count; i++)
            {
                string str = list1[i].ToString();
                long v1 = Convert.ToInt64(str.Substring(3, 6), 16);
                for(int j = i + 1; j < list1.Count; j++)
                {
                    string st = list1[j].ToString();
                    long v2 = Convert.ToInt64(st.Substring(3, 6), 16);
                    if(v2 < v1)
                    {
                        Brush brush = list1[i];
                        string name = list2[i];
                        list1[i] = list1[j];
                        list2[i] = list2[j];
                        list1[j] = brush;
                        list2[j] = name;
                    }
                }
            }
        }

         void AddBrush()
        {
            list1.Add(Brushes.AliceBlue);
            list1.Add(Brushes.AntiqueWhite);
            list1.Add(Brushes.Aqua);
            list1.Add(Brushes.Aquamarine);
            list1.Add(Brushes.Azure);
            list1.Add(Brushes.Beige);
            list1.Add(Brushes.Bisque);
            //list1.Add(Brushes.Black);
            list1.Add(Brushes.BlanchedAlmond);
            list1.Add(Brushes.Blue);
            list1.Add(Brushes.BlueViolet);
            list1.Add(Brushes.Brown);
            list1.Add(Brushes.BurlyWood);
            list1.Add(Brushes.CadetBlue);
            list1.Add(Brushes.Chartreuse);
            list1.Add(Brushes.Chocolate);
            list1.Add(Brushes.Coral);
            list1.Add(Brushes.CornflowerBlue);
            list1.Add(Brushes.Cornsilk);
            list1.Add(Brushes.Crimson);
            list1.Add(Brushes.Cyan);
            list1.Add(Brushes.DarkBlue);
            list1.Add(Brushes.DarkCyan);
            list1.Add(Brushes.DarkGoldenrod);
            list1.Add(Brushes.DarkGray);
            list1.Add(Brushes.DarkGreen);
            list1.Add(Brushes.DarkKhaki);
            list1.Add(Brushes.DarkMagenta);
            list1.Add(Brushes.DarkOliveGreen);
            list1.Add(Brushes.DarkOrange);
            list1.Add(Brushes.DarkOrchid);
            list1.Add(Brushes.DarkRed);
            list1.Add(Brushes.DarkSalmon);
            list1.Add(Brushes.DarkSeaGreen);
            list1.Add(Brushes.DarkSlateBlue);
            list1.Add(Brushes.DarkSlateGray);
            list1.Add(Brushes.DarkTurquoise);
            list1.Add(Brushes.DarkViolet);
            list1.Add(Brushes.DeepPink);
            list1.Add(Brushes.DeepSkyBlue);
            list1.Add(Brushes.DimGray);
            list1.Add(Brushes.DodgerBlue);
            list1.Add(Brushes.Firebrick);
            list1.Add(Brushes.FloralWhite);
            list1.Add(Brushes.ForestGreen);
            list1.Add(Brushes.Fuchsia);
            list1.Add(Brushes.Gainsboro);
            list1.Add(Brushes.GhostWhite);
            list1.Add(Brushes.Gold);
            list1.Add(Brushes.Goldenrod);
            list1.Add(Brushes.Gray);
            list1.Add(Brushes.Green);
            list1.Add(Brushes.GreenYellow);
            list1.Add(Brushes.Honeydew);
            list1.Add(Brushes.HotPink);
            list1.Add(Brushes.IndianRed);
            list1.Add(Brushes.Indigo);
            list1.Add(Brushes.Ivory);
            list1.Add(Brushes.Khaki);
            list1.Add(Brushes.Lavender);
            list1.Add(Brushes.LavenderBlush);
            list1.Add(Brushes.LawnGreen);
            list1.Add(Brushes.LemonChiffon);
            list1.Add(Brushes.LightBlue);
            list1.Add(Brushes.LightCoral);
            list1.Add(Brushes.LightCyan);
            list1.Add(Brushes.LightGoldenrodYellow);
            list1.Add(Brushes.LightGray);
            list1.Add(Brushes.LightGreen);
            list1.Add(Brushes.LightPink);
            list1.Add(Brushes.LightSalmon);
            list1.Add(Brushes.LightSeaGreen);
            list1.Add(Brushes.LightSkyBlue);
            list1.Add(Brushes.LightSlateGray);
            list1.Add(Brushes.LightSteelBlue);
            list1.Add(Brushes.LightYellow);
            list1.Add(Brushes.Lime);
            list1.Add(Brushes.LimeGreen);
            list1.Add(Brushes.Linen);
            list1.Add(Brushes.Magenta);
            list1.Add(Brushes.Maroon);
            list1.Add(Brushes.MediumAquamarine);
            list1.Add(Brushes.MediumBlue);
            list1.Add(Brushes.MediumOrchid);
            list1.Add(Brushes.MediumPurple);
            list1.Add(Brushes.MediumSeaGreen);
            list1.Add(Brushes.MediumSlateBlue);
            list1.Add(Brushes.MediumSpringGreen);
            list1.Add(Brushes.MediumTurquoise);
            list1.Add(Brushes.MediumVioletRed);
            list1.Add(Brushes.MidnightBlue);
            list1.Add(Brushes.MintCream);
            list1.Add(Brushes.MistyRose);
            list1.Add(Brushes.Moccasin);
            list1.Add(Brushes.NavajoWhite);
            list1.Add(Brushes.Navy);
            list1.Add(Brushes.OldLace);
            list1.Add(Brushes.Olive);
            list1.Add(Brushes.OliveDrab);
            list1.Add(Brushes.Orange);
            list1.Add(Brushes.OrangeRed);
            list1.Add(Brushes.Orchid);
            list1.Add(Brushes.PaleGoldenrod);
            list1.Add(Brushes.PaleGreen);
            list1.Add(Brushes.PaleTurquoise);
            list1.Add(Brushes.PaleVioletRed);
            list1.Add(Brushes.PapayaWhip);
            list1.Add(Brushes.PeachPuff);
            list1.Add(Brushes.Peru);
            list1.Add(Brushes.Pink);
            list1.Add(Brushes.Plum);
            list1.Add(Brushes.PowderBlue);
            list1.Add(Brushes.Purple);
            list1.Add(Brushes.Red);
            list1.Add(Brushes.RosyBrown);
            list1.Add(Brushes.RoyalBlue);
            list1.Add(Brushes.SaddleBrown);
            list1.Add(Brushes.Salmon);
            list1.Add(Brushes.SandyBrown);
            list1.Add(Brushes.SeaGreen);
            list1.Add(Brushes.SeaShell);
            list1.Add(Brushes.Sienna);
            list1.Add(Brushes.Silver);
            list1.Add(Brushes.SkyBlue);
            list1.Add(Brushes.SlateBlue);
            list1.Add(Brushes.SlateGray);
            list1.Add(Brushes.Snow);
            list1.Add(Brushes.SpringGreen);
            list1.Add(Brushes.SteelBlue);
            list1.Add(Brushes.Tan);
            list1.Add(Brushes.Teal);
            list1.Add(Brushes.Thistle);
            list1.Add(Brushes.Tomato);
            list1.Add(Brushes.Transparent);
            list1.Add(Brushes.Turquoise);
            list1.Add(Brushes.Violet);
            list1.Add(Brushes.Wheat);
            list1.Add(Brushes.White);
            list1.Add(Brushes.WhiteSmoke);
            list1.Add(Brushes.Yellow);
            list1.Add(Brushes.YellowGreen);
        }
        void AddName()
        {
            list2.Add("AliceBlue");
            list2.Add("AntiqueWhite");
            list2.Add("Aqua");
            list2.Add("Aquamarine");
            list2.Add("Azure");
            list2.Add("Beige");
            list2.Add("Bisque");
            //list2.Add("Black");
            list2.Add("BlanchedAlmond");
            list2.Add("Blue");
            list2.Add("BlueViolet");
            list2.Add("Brown");
            list2.Add("BurlyWood");
            list2.Add("CadetBlue");
            list2.Add("Chartreuse");
            list2.Add("Chocolate");
            list2.Add("Coral");
            list2.Add("CornflowerBlue");
            list2.Add("Cornsilk");
            list2.Add("Crimson");
            list2.Add("Cyan");
            list2.Add("DarkBlue");
            list2.Add("DarkCyan");
            list2.Add("DarkGoldenrod");
            list2.Add("DarkGray");
            list2.Add("DarkGreen");
            list2.Add("DarkKhaki");
            list2.Add("DarkMagenta");
            list2.Add("DarkOliveGreen");
            list2.Add("DarkOrange");
            list2.Add("DarkOrchid");
            list2.Add("DarkRed");
            list2.Add("DarkSalmon");
            list2.Add("DarkSeaGreen");
            list2.Add("DarkSlateBlue");
            list2.Add("DarkSlateGray");
            list2.Add("DarkTurquoise");
            list2.Add("DarkViolet");
            list2.Add("DeepPink");
            list2.Add("DeepSkyBlue");
            list2.Add("DimGray");
            list2.Add("DodgerBlue");
            list2.Add("Firebrick");
            list2.Add("FloralWhite");
            list2.Add("ForestGreen");
            list2.Add("Fuchsia");
            list2.Add("Gainsboro");
            list2.Add("GhostWhite");
            list2.Add("Gold");
            list2.Add("Goldenrod");
            list2.Add("Gray");
            list2.Add("Green");
            list2.Add("GreenYellow");
            list2.Add("Honeydew");
            list2.Add("HotPink");
            list2.Add("IndianRed");
            list2.Add("Indigo");
            list2.Add("Ivory");
            list2.Add("Khaki");
            list2.Add("Lavender");
            list2.Add("LavenderBlush");
            list2.Add("LawnGreen");
            list2.Add("LemonChiffon");
            list2.Add("LightBlue");
            list2.Add("LightCoral");
            list2.Add("LightCyan");
            list2.Add("LightGoldenrodYellow");
            list2.Add("LightGray");
            list2.Add("LightGreen");
            list2.Add("LightPink");
            list2.Add("LightSalmon");
            list2.Add("LightSeaGreen");
            list2.Add("LightSkyBlue");
            list2.Add("LightSlateGray");
            list2.Add("LightSteelBlue");
            list2.Add("LightYellow");
            list2.Add("Lime");
            list2.Add("LimeGreen");
            list2.Add("Linen");
            list2.Add("Magenta");
            list2.Add("Maroon");
            list2.Add("MediumAquamarine");
            list2.Add("MediumBlue");
            list2.Add("MediumOrchid");
            list2.Add("MediumPurple");
            list2.Add("MediumSeaGreen");
            list2.Add("MediumSlateBlue");
            list2.Add("MediumSpringGreen");
            list2.Add("MediumTurquoise");
            list2.Add("MediumVioletRed");
            list2.Add("MidnightBlue");
            list2.Add("MintCream");
            list2.Add("MistyRose");
            list2.Add("Moccasin");
            list2.Add("NavajoWhite");
            list2.Add("Navy");
            list2.Add("OldLace");
            list2.Add("Olive");
            list2.Add("OliveDrab");
            list2.Add("Orange");
            list2.Add("OrangeRed");
            list2.Add("Orchid");
            list2.Add("PaleGoldenrod");
            list2.Add("PaleGreen");
            list2.Add("PaleTurquoise");
            list2.Add("PaleVioletRed");
            list2.Add("PapayaWhip");
            list2.Add("PeachPuff");
            list2.Add("Peru");
            list2.Add("Pink");
            list2.Add("Plum");
            list2.Add("PowderBlue");
            list2.Add("Purple");
            list2.Add("Red");
            list2.Add("RosyBrown");
            list2.Add("RoyalBlue");
            list2.Add("SaddleBrown");
            list2.Add("Salmon");
            list2.Add("SandyBrown");
            list2.Add("SeaGreen");
            list2.Add("SeaShell");
            list2.Add("Sienna");
            list2.Add("Silver");
            list2.Add("SkyBlue");
            list2.Add("SlateBlue");
            list2.Add("SlateGray");
            list2.Add("Snow");
            list2.Add("SpringGreen");
            list2.Add("SteelBlue");
            list2.Add("Tan");
            list2.Add("Teal");
            list2.Add("Thistle");
            list2.Add("Tomato");
            list2.Add("Transparent");
            list2.Add("Turquoise");
            list2.Add("Violet");
            list2.Add("Wheat");
            list2.Add("White");
            list2.Add("WhiteSmoke");
            list2.Add("Yellow");
            list2.Add("YellowGreen");
        }
    }
}
